package br.com.usapre.faces;

import java.io.Serializable;

import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.bean.MensagemEmail;
import br.com.business.EmailBusiness;
import br.com.login.faces.SessionUsaPreBean;
import br.com.utilidades.faces.SimpleMessageBean;
import constantes.CONSTANTES;

/**
 * @version 1.0.0
 * @since Janeiro,29 2013
 * @author Eduardo Francisco Barbosa
 */
@Component
@Scope("view")
public class ContatoBean extends SimpleMessageBean implements Serializable {

    private static final long serialVersionUID = 2369735578810078592L;

    private SessionUsaPreBean sessionUsaPreBean;

    private MensagemEmail msgEmail;

    private EmailBusiness emailBusinessImpl;

    /**
     * Construtor
     */
    @Autowired
    public ContatoBean(SessionUsaPreBean sessionUsaPreBean, EmailBusiness emailBusinessImpl) {

	this.sessionUsaPreBean = sessionUsaPreBean;

	this.emailBusinessImpl = emailBusinessImpl;

	reset();
    }

    /**
     * reset
     */
    public void reset() {

	msgEmail = new MensagemEmail();

    }

    /**
     * enviarMensagem
     */
    public void enviarMensagem() {

	emailBusinessImpl.enviar(
		"atendimento@nacionalsa.com.br",
		"Contatos",
		msgEmail.getAssunto(),
		msgEmail.getTelefone() + " - " + msgEmail.getEmail() + " - " + msgEmail.getNome() + " - "
			+ msgEmail.getMensagem());

	emailBusinessImpl.enviar("ideias.info@gmail.com", "Contatos", msgEmail.getAssunto(), msgEmail.getTelefone()
		+ " - " + msgEmail.getNome() + " - " + msgEmail.getMensagem());

	if (sessionUsaPreBean.getLogado().equals(Boolean.TRUE)) {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/mensagemEnviadaComSucessoLogado.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	} else {
	    try {
		FacesContext.getCurrentInstance().getExternalContext()
			.redirect("/" + CONSTANTES.URLUSAPRE + "/mensagemEnviadaComSucesso.jsf");
	    } catch (Exception ex) {
		ex.printStackTrace();
	    }
	}
    }

    // SETS AND GETS
    public MensagemEmail getMsgEmail() {
	return msgEmail;
    }

    public void setMsgEmail(MensagemEmail msgEmail) {
	this.msgEmail = msgEmail;
    }
}
